home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / tos_updt / fmcity / palcom / script / bt_oasys.mx next >
Text File  |  1995-03-24  |  6KB  |  148 lines

  1. //--------------------------------------------------------------------------//
  2. //                        PALCOM V2.1 L10                        //
  3. //                           手動通信(OASYS変換)                            //
  4. //                                                                            //
  5. //                                        CopyRight(C) 1994/10/20                //
  6. //                                FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED    //
  7. //                                        written by C-cube Soft H.Nakamura    //
  8. //--------------------------------------------------------------------------//
  9. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  10. //+++                      オープンイベントハンドラ                         +++//
  11. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  12. event    @OPEN.EXTERN {
  13.     //---   リアルメモリのチェック   ---//
  14.     if( sys.checkMaxReal() < 1024 * 140 ) {
  15.         $saveXsize = dialog.getDefaultXSize();
  16.         dialog.setDefaultXSize( 336 );
  17.         sys.pushCursor( 80 );
  18.         dialog.ask(["━━━━━━━   OASYS文書交換   ━━━━━━━",
  19.                     "",
  20.                     "  拡張機能が設定されていません。                    ",
  21.                     "  システム設定の拡張機能で「OASYS文書サポート」",
  22.                     "を設定してください。                                ",
  23.                     ""],["確認"] );
  24.         sys.popCursor();
  25.         dialog.setDefaultXSize( $saveXsize );
  26.         return;
  27.     }
  28.  
  29.     $sBt = dialog.makeButton( 1, "実行", 0, 0x8012 );
  30.     $cBt = dialog.makeButton( 1, "終了", 0, 0x801D );
  31.     loop {
  32.         $dialogList = ["", 0, -1, -1, $sBt,
  33.                 ["", 1024, [0], [
  34.                     "━━━━━━━━━━━━━━━━━━━━━",
  35.                     "            OASYS文書交換            ",
  36.                     "━━━━━━━━━━━━━━━━━━━━━",
  37.                     ""
  38.                     ], [""]                                 ],
  39.                 ["", 1027, [1],    ["OASYS文書  →  DOSバイナリ",
  40.                                  "DOSバイナリ  →  OASYS文書"], [1]],
  41.                 ["", 1024, [0], [""], [""]                                 ],
  42.                 ["", $cBt, [0], [""], [""]                                 ],
  43.                 ["", $sBt, [0], [""], [""]                                 ]
  44.         ];
  45.         $saveXsize = dialog.getDefaultXSize();
  46.         dialog.setDefaultXSize( 276 );
  47.         sys.popCursor();
  48.         $ret = dialog.open( $dialogList );
  49.         sys.pushCursor(81);
  50.         dialog.setDefaultXSize( $saveXsize );
  51.  
  52.         if( list.get1st( $$DIALOG.RETURN ) == $sBt ) {    // 実行
  53.             if( list.get1st( list.getNth( $$DIALOG.RETURN, 3 )) == 1 ) {
  54.                 $name = file.autoName( "", 1 );            // OASYS->DOS
  55.                 $name = list.getLast( str.split( $name, "\\" ));
  56.                 sys.popCursor();
  57.                 $ret  = dialog.saveFile( "", $name, "", "保存ファイル指定",
  58.                                                         "変換","取消" );
  59.                 sys.pushCursor(81);
  60.                 if( $ret == #FALSE ) {
  61.                     continue;
  62.                 }
  63.                 mod.oasys( 1, list.get1st( $ret ), list.getNth( $ret, 2 ));
  64.             } else {                                    // DOS->OASYS
  65.                 sys.popCursor();
  66.                 $ret  = dialog.selectFile( "", 0, [],
  67.                                         "変換ファイル指定", "変換","取消" );
  68.                 sys.pushCursor(81);
  69.                 if( list.size( $ret ) == 0 ) {
  70.                     continue;
  71.                 }
  72.                 mod.oasys( 0, list.get1st( list.get1st( $ret )), "" );
  73.             }
  74.         } else {
  75.             exit;
  76.         }
  77.     }
  78.     dialog.delButton( $sBt );
  79.     dialog.delButton( $cBt );
  80. }
  81. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  82. //+++                      クローズイベントハンドラ                         +++//
  83. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  84. event    @CLOSE.EXTERN {
  85.     return;
  86. }
  87. event    @ERROR    {
  88.     //---   OASYS ファイル変換のエラーの場合は独自に処理する   ---//
  89.     if( list.getNth( $$ERROR, 2 ) == "OASYSファイル変換" ) {
  90.         $errMsg = list.get1st( list.getNth( $$ERROR, 4 ));
  91.         $errNo = data.toNumber( str.right( $errMsg, str.length($errMsg)-12 ));
  92.         if((( $errNo >=   1 )&&( $errNo <=   7 ))||
  93.            (( $errNo >=  54 )&&( $errNo <=  57 ))||
  94.            ( $errNo == 166 )) {
  95.             $errMsg = "       ファイルの指定に誤りがあります。       ";
  96.             $errTyp = 0;
  97.         } elif((( $errNo >=  50 )&&( $errNo <=  53 ))||
  98.                 ( $errNo == 173 )||( $errNo == 178 )||( $errNo == 186 )) {
  99.             $errMsg = "       ドライブの準備が出来ていません。       ";
  100.             $errTyp = 1;
  101.         } elif((  $errNo ==  60 )||( $errNo ==  61 )||( $errNo == 161 )) {
  102.             $errMsg = "         書き込み保護がされています。         ";
  103.             $errTyp = 1;
  104.         } elif((  $errNo ==  62 )||( $errNo ==  63 )||( $errNo == 160 )||
  105.                (  $errNo == 174 )||( $errNo == 200 )||( $errNo == 201 )) {
  106.             $errMsg = "           空き容量が不足しています。         ";
  107.             $errTyp = 0;
  108.         } elif((  $errNo == 100 )||( $errNo == 153 )||( $errNo == 165 )||
  109.                (  $errNo == 184 )||( $errNo == 185 )) {
  110.             $errMsg = "OASYS文書でないか、媒体の形式が違います。";
  111.             $errTyp = 0;
  112.         } elif((  $errNo ==  65 )||( $errNo ==  66 )||( $errNo == 187 )) {
  113.             $errMsg = "     MS-DOS形式の媒体ではありません。   ";
  114.             $errTyp = 0;
  115.         } elif((  $errNo >= 106 )&&( $errNo <= 109 )) {
  116.             $errMsg = "   部分的に変換出来ないデータがありました。   ";
  117.             $errTyp = 0;
  118.         } else {
  119.             $errMsg = str.join(["OASYS変換エラー  ",
  120.                                 data.toString( $errNo )], "" );
  121.             if( str.length( $errMsg ) != 44 ) {
  122.                 $errMsg = str.join([str.left("                      ",
  123.                                             22 - ( str.length( $errMsg)/2 )),
  124.                                     $errMsg], "" );
  125.             }
  126.             $errTyp = 0;
  127.         }
  128.  
  129.         table( $errTyp ) {
  130.         0    {    $error = [-1,"━━━━━━  OASYS文書交換  ━━━━━━",
  131.                                                     $errMsg,[],[],["確認"]];
  132.                 dialog.error( $error );
  133.                 event.resumeError( 1 );
  134.             }
  135.         1    {    $error = [-1,"━━━━━━  OASYS文書交換  ━━━━━━",
  136.                                             $errMsg,[],[], ["中止","再実行"]];
  137.                 if( dialog.error( $error ) == 1 ) {
  138.                     event.resumeError( 0 );
  139.                 } else {
  140.                     event.resumeError( 1 );
  141.                 }
  142.             }
  143.         }
  144.     }
  145.     local.errorFunc();
  146.     event.mainLoop();
  147. }
  148.